Keysight SD1 Command Reference

This chapter contains the following sections:

 

Programs can run on an embedded controller or desktop computer and be controlled with Keysight SD1 Programming Libraries. Keysight supplies a comprehensive set of highly optimized software instructions that controls off-the-shelf functionalities of Keysight hardware. These software instructions are compiled into the Keysight SD1 Programming Libraries. The use of customizable software to create user-defined control, test and measurement systems is commonly referred as Virtual Instrumentation. In Keysight documentation, the concept of a Virtual Instrument (or VI) describes user software that uses programming libraries and is executed by a computer.

Keysight Supplied Native Programming Libraries

Keysight provides ready-to-use native programming libraries for a comprehensive set of programming languages, such as C, C++, Visual Studio (VC++, C#, VB), MATLAB, National Instruments LabVIEW, Python, etc., ensuring full software compatibility and seamless multivendor integration. Ready-to-use native libraries are supplied for the following programming languages and compilers:

Language

Compiler

Library

Files

C

Microsoft Visual Studio . NET

.NET Library

*.dll

 

MinGW (Qt), GCC

C Library

*.h, *.a

 

Any C compiler

C Library

*.h, *.lib

C++

Microsoft Visual Studio . NET

.NET Library

*.dll

 

MinGW (Qt), GCC

C++ Library

*.h, *.a

 

C++ Builder / Turbo C++

C++ Library

*.h, *.lib

C#

Microsoft Visual Studio .NET

.NET Library

*.dll

MATLAB

MathWorks MATLAB

.NET Library

*.dll

Python

Any Python compiler

Python Library

*.py

Basic

Microsoft Visual Studio .NET

.NET Library

*.dll

LabVIEW

National Instruments LabVIEW

LabVIEW Library

*.vi

Support for Other Programming Languages

Keysight provides dynamic libraries, e.g. DLLs, that can be used in virtually any programming language. Dynamic-link libraries are compatible with any programming language that has a compiler capable of performing dynamic linking. Here are some case examples:

Dynamic-link libraries available:

Exported Functions Language Operating System Files
C Microsoft Windows *.dll

 

DLL function prototypes: The exported functions of the dynamic libraries have the same prototype as their counterparts of the static libraries.

Function Parameters: Some of the parameters of the library functions are language dependent. The table of input and output parameters for each function is a conceptual description, therefore, the user must check the specific language function to see how to use it. One example are the ID parameters (moduleID, etc.), which identify objects in non object-oriented languages. In object-oriented languages, the objects are identified by their instances and therefore the IDs are not present.

Function Names: Some programming languages like C++ or LabVIEW have a feature called function overloading or polymorphism, that allows creating several functions with the same name, but with different input/output parameters. In languages without this feature, functions with different parameters must have different names.

 

Functions in SD1 Programming Libraries

The following functions are available in Keysight SD1 Programming Libraries.

 

SD_Module Functions

Function Name

Comments

open Initializes a hardware module and must be called before using any other module-related function.
close Releases all resources that were allocated for a module with open and must always be called before exiting the application.
moduleCount Returns the number of Keysight SD1 modules in the system.
getProductName Returns the product name of the specified module.
getSerialNumber Returns the serial number of the specified module.
getChassis Returns the chassis number of where a module is located.
getSlot Returns the slot number of where a module is located.
PXItriggerWrite Sets the digital value of a PXI trigger in the PXI backplane.
Only available in PXI/PXI Express form factors.
PXItriggerRead Reads the digital value of a PXI trigger in the PXI backplane. Only available in PXI/PXI Express form factors.

 

SD_AOU Functions

Function Name

Comments

channelWaveShape Sets the channel waveshape type.
channelFrequency Sets the channel frequency for the periodic signal generated by the Function Generator.
channelPhase Sets the channel phase for the periodic signals generated by the Function Generator.
channelPhaseReset Resets the accumulated phase of the selected channel.
channelPhaseResetMultiple Resets the accumulated phase of multiple selected channels, simultaneously.
channelAmplitude Sets the amplitude of a channel.
channelOffset Sets the DC offset of a channel.
modulationAngleConfig Configures the modulation in frequency/phase for the selected channel.
modulationAmplitudeConfig Configures the modulation in amplitude/offset for the selected channel.
modulationIQconfig Sets the IQ modulation for the selected channel.
clockIOconfig Configures the operation of the clock output connector.
waveformLoad Loads a waveform into the module's onboard RAM.
waveformReLoad Replaces a waveform located in the module's onboard RAM.
waveformFlush Deletes all waveforms from the module's onboard RAM and flushes all AWG queues.
AWG Provides a one-step method to load, queue, and start a single waveform.
AWGqueueWaveform Queues a waveform in the specified AWG.
AWGflush Empties the queue of the AWG.
AWGstart Runs the AWG starting from the beginning of its queue.
AWGstartMultiple Runs the AWG starting from the beginning of its queue, but acting on more than one AWG at once.
AWGpause Pauses the AWG.
AWGpauseMultiple Pauses the AWG, but acting on more than one AWG at once.
AWGresume Resumes the AWG.
AWGresumeMultiple Resumes the AWG, but acting on more than one AWG at once.
AWGstop Stops the AWG, resetting the queue to its initial position.
AWGstopMultiple Stops the AWG, but acting on more than one AWG at once.
AWGreset Resets the pointer variable that manages the AWG queue.
AWGjumpNextWaveform Forces the AWG to jump to the next waveform in the queue.
AWGjumpNextWaveformMultiple Forces the AWG to jump to the next waveform in the queue, but acting on more than one AWG at once.
AWGisRunning Returns if the AWG is running or stopped.
AWGnWFplaying Returns if the AWG is running or stopped, but acting on more than one AWG at once.
AWGtriggerExternalConfig Configures the external triggers of the AWG.
AWGtrigger Triggers the AWG.
AWGtriggerMultiple Triggers the AWG, but acting on more than one AWG at once.
triggerIOconfig

Configures the trigger line direction.

triggerIOwrite Sets the trigger output.
triggerIOread Reads the trigger input.
clockSetFrequency (Requires Option CLV) Sets the module clock frequency. This function is only usable for modules with the variable clock Option CLV.
clockGetFrequency Returns the value in Hz of the module sample rate frequency.
clockGetSyncFrequency Returns the frequency of the internal CLKsync signal in Hz.
clockResetPhase Set modules in sync state, waiting for first trigger to reset the phase of the internal clocks CLKsync and CLKsys.
AWGqueueConfig Configures the cyclic mode of the queue.
AWGqueueConfigRead Reads the value of the cyclic mode of the queue.
AWGqueueMarkerConfig Configures the Marker generation for each AWG.
AWGqueueSyncMode Configures the sync mode of the queue.

 

SD_Wave Functions (new and delete)

Function Name

Comments

new Creates a new waveform object in the PC RAM from a file or from an array.
delete Deletes the waveform object from the PC RAM.

 

 

SD_Module Functions (M3601A HVI-related)

Function Name

Comments

writeRegister Writes a value in an HVI register of a hardware module
(Option HV1 required).
readRegister Reads a value from an HVI register of a hardware module (Option HV1 required).

 

SD_Module Functions (M3602A FPGA-related)

Function Name

Comments

FPGAwritePCport Writes data at the PCport FPGA block
(Option FP1 required).
FPGAreadPCport Reads data at the PCport FPGA block
(Option FP1 required).
FPGAload Loads a bitstream file generated using M3602A software to FPGA (Option FP1 required).
FPGAreset Sends a reset signal to FPGA
(Option FP1 required).

SD_Module Functions

open

Initializes a hardware module and must be called before using any other module-related function.

A module can be opened using the serial number or the chassis and slot number. Using the serial number ensures the same module is always opened regardless of its chassis or slot location.

Parameters
Name Description
Inputs  
productName Module's product name (for example, "M3202A").
The product name can be found on the product
or can be retrieved with getProductName.
serialNumber Module's serial number (for example, "ES5641").
The serial number can be found on the product
or can be retrieved with getSerialNumber.
chassis Chassis number where the module is located.
The chassis number can be found in Keysight SD1 software
or can be retrieved with getChassis.
slot Slot number in the chassis where the module is located.
The slot number can be found on the chassis
or can be retrieved with getSlot.
compatibility Forces the channel numbers to be compatible with legacy models. Channel numbering (channel enumeration) can start as CH0 or CH1. See Channel Numbering and Compatibility Mode.
errorIn (LabVIEW only) If it contains an error, the function will not be executed and errorIn will be passed to errorOut
Outputs  
moduleID (Non-object-oriented languages only) Module identifier
or a negative number that indicates an error, see Error Codes.
errorOut See Error Codes
C
int SD_Module_openWithSerialNumber(const char* productName, const char* serialNumber);
 
int SD_Module_openWithSlot(const char* productName, int chassis, int slot);
 
int SD_Module_openWithSerialNumberCompatibility(const char* productName, const char* serialNumber, int compatibility);
 
int SD_Module_openWithSlotCompatibility(const char* productName, int chassis, int slot, int compatibility);
C++
int SD_Module::open(const char* productName, const char* serialNumber);
 
int SD_Module::open(const char* productName, int chassis, int slot);
 
int SD_Module::open(const char* productName, const char* serialNumber, int compatibility);
 
int SD_Module::open(const char* productName, int chassis, int slot, int compatibility);
Visual Studio .NET, MATLAB
int SD_Module::open(string productName, string serialNumber);
 
int SD_Module::open(string productName, int chassis, int slot);
 
int SD_Module::open(string productName, string serialNumber, int compatibility);
 
int SD_Module::open(string productName, int chassis, int slot, int compatibility);
Python
SD_Module.openWithSerialNumber(productName, serialNumber)
 
SD_Module.openWithSlot(productName, chassis, slot)
 
SD_Module.openWithSerialNumberCompatibility(productName, serialNumber, compatibility)
 
SD_Module.openWithSlotCompatibility(productName, chassis, slot, compatibility)
LabVIEW
openWithSerialNumber.vi

openWithSlot.vi

M3601A
Available: No

close

Releases all resources that were allocated for a module with open
and must always be called before exiting the application.

Parameters
Name Description
Inputs  
moduleID (Non-object-oriented languages only) Module identifier, returned by open
errorIn (LabVIEW only) If it contains an error, the function will not be executed and errorIn will be passed to errorOut.
Outputs  
errorOut See Error Codes
C
int SD_Module_close(int moduleID);
C++
int SD_Module::close();
Visual Studio .NET, MATLAB
int SD_Module::close();
Python
SD_Module.close()
LabVIEW
close.vi

M3601A
Available: No

moduleCount

Returns the number of Keysight SD1 modules (M31xxA/M32xxA/M33xxA) installed in the system.

Static Function: (Object-oriented languages only)
moduleCount is a static function
Parameters
Name Description
Inputs  
errorIn (LabVIEW only) If it contains an error, the function will not be executed and errorIn will be passed to errorOut
Outputs  
nModules Number of Keysight SD1 modules installed in the system.
Negative numbers indicate an error, see Error Codes.
errorOut (LabVIEW only) See Error Codes
C
int SD_Module_moduleCount();
C++
int SD_Module::moduleCount();
Visual Studio .NET, MATLAB
int SD_Module::moduleCount();
Python
SD_Module.moduleCount()
LabVIEW
Available: No
M3601A
Available: No

getProductName

Returns the product name of the specified module.

Static Function: (Object-oriented languages only) getProductName is a static function
Parameters
Name Description
Inputs  
index Module index. It must be in the range (0 to nModules-1),
where nModules is returned by moduleCount.
chassis Chassis number where the module is located.
The chassis number can be found in Keysight SD1 software
or can be retrieved with getChassis.
slot Slot number in the chassis where the module is located.
The slot number can be found on the chassis
or can be retrieved with getSlot.
errorIn (LabVIEW only) If it contains an error, the function will not be executed and errorIn will be passed to errorOut.
Outputs  
productName Product name of the specified module.
This product name can be used in open.
errorOut See Error Codes
C
int SD_Module_getProductNameByIndex(int index, char *productName);
int SD_Module_getProductNameBySlot(int chassis, int slot, char* productName);
C++
int SD_Module::getProductName(int index, char *productName);
int SD_Module::getProductName(int chassis, int slot, char* productName);
Visual Studio .NET, MATLAB
int SD_Module::getProductName(int index, string productName);
int SD_Module::getProductName(int chassis, int slot, string productName);
Python
SD_Module.getProductNameByIndex(index, productName)
SD_Module.getProductNameBySlot(chassis, slot, productName)
LabVIEW
Available: No
M3601A
Available: No

getSerialNumber

Returns the serial number of the specified module.

Static Function: (Object-oriented languages only) getSerialNumber is a static function
Parameters
Name Description
Inputs  
index Module index. It must be in the range (0 to nModules-1),
where nModules is returned by moduleCount.
chassis Chassis number where the module is located.
The chassis number can be found in Keysight SD1 software
or can be retrieved with getChassis.
slot Slot number in the chassis where the module is located.
The slot number can be found on the chassis
or can be retrieved with getSlot.
errorIn (LabVIEW only) If it contains an error, the function will not be executed and errorIn will be passed to errorOut
Outputs  
serialNumber

Serial number of the specified module.
This serial number can be used in open.

errorOut See Error Codes
C
int SD_Module_getSerialNumberByIndex(int index, char *serialNumber);
int SD_Module_getSerialNumberBySlot(int chassis, int slot, char* serialNumber);
C++
int SD_Module::getSerialNumber(int index, char *serialNumber);
int SD_Module::getSerialNumber(int chassis, int slot, char* serialNumber);
Visual Studio .NET, MATLAB
int SD_Module::getSerialNumber(int index, string serialNumber);
int SD_Module::getSerialNumber(int chassis, int slot, string serialNumber);
Python
SD_Module.getSerialNumberByIndex(index, serialNumber)
SD_Module.getSerialNumberBySlot(chassis, slot, serialNumber)
LabVIEW
Available: No
M3601A
Available: No

getChassis

Returns the chassis number of where a module is located.

Static Function: (Object-oriented languages only)
getChassis is a static function
Parameters
Name Description
Inputs  
index Module index. It must be in the range (0 to nModules-1),
where nModules is returned by moduleCount.
errorIn (LabVIEW only) If it contains an error, the function will not be executed and errorIn will be passed to errorOut.
Outputs  
chassis Chassis number of where a module is located.
Negative numbers indicate an error, see Error Codes.
errorOut (LabVIEW only) See Error Codes
C
int SD_Module_getChassis(int index);
C++
int SD_Module::getChassis(int index);
Visual Studio .NET, MATLAB
int SD_Module::getChassis(int index);
Python
SD_Module.getChassis()
SD_Module.getChassisByIndex(index)
LabVIEW
Available: No
M3601A
Available: No

getSlot

Returns the slot number of where a module is located in the chassis.

Static Function: (Object-oriented languages only)
getSlot is a static function
Parameters
Name Description
Inputs  
index Module index. It must be in the range (0 to nModules-1),
where nModules is returned by moduleCount.
errorIn (LabVIEW only) If it contains an error, the function will not be executed and errorIn will be passed to errorOut
Outputs  
slot Slot number of where the module is located in the chassis.
Negative numbers indicate an error, see Error Codes.
errorOut (LabVIEW only) See Error Codes
C
int SD_Module_getSlot(int index);
C++
int SD_Module::getSlot(int index);
Visual Studio .NET, MATLAB
int SD_Module::getSlot(int index);
Python
SD_Module.getSlot()
SD_Module.getSlotByIndex(index)
LabVIEW
Available: No
M3601A
Available: No

PXItriggerWrite

Sets the digital value of a PXI trigger in the PXI backplane.
This function is only available in PXI/PXI Express form factors.

Parameters
Name Description
Inputs  
moduleID (Non-object-oriented languages only)
Module identifier, returned by open.
nPXItrigger PXI trigger number
OptionDescriptionNameValue
External I/O
Trigger
The AWG trigger is a TRG connector/line of the module. PXI form factor only: this trigger can be synchronized to CLK10.TRIG_EXTERNAL0
PXI
Trigger [0 to n]
PXI form factor only.
Selects between trigger lines on the
backplane or the PXI chassis.
TRIG_PXI + Trigger No.4000 + Trigger No.

See also, table after AWG External Trigger Source

value Digital value with negated logic: 0 (ON) or 1 (OFF)
errorIn (LabVIEW only) If it contains an error, the function will not be executed and errorIn will be passed to errorOut.
Outputs  
moduleIDOut (LabVIEW only) A copy of moduleID
errorOut See Error Codes
C
int SD_Module_PXItriggerWrite(int moduleID, int nPXItrigger, int value);
C++
int SD_Module::PXItriggerWrite(int nPXItrigger, int value);
Visual Studio .NET, MATLAB
int SD_Module::PXItriggerWrite(int nPXItrigger, int value);
Python
SD_Module.PXItriggerWrite(nPXItrigger, value)
LabVIEW
Available: No
M3601A
Available: No

PXItriggerRead

Reads the digital value of a PXI trigger in the PXI backplane.
This function is only available in PXI/PXI Express form factors.

Parameters
Name Description
Inputs  
moduleID (Non-object-oriented languages only)
Module identifier, returned by open.
nPXItrigger PXI trigger number
OptionDescriptionNameValue
External I/O
Trigger
The AWG trigger is a TRG connector/line of the module. PXI form factor only: this trigger can be synchronized to CLK10.TRIG_EXTERNAL0
PXI
Trigger [0 to n]
PXI form factor only. The AWG external trigger is a PXI trigger line and is synchronized to CLK10.TRIG_PXI + Trigger No.4000 + Trigger No.

See also, table after AWG External Trigger Source

errorIn (LabVIEW only) If it contains an error, the function will not be executed and errorIn will be passed to errorOut.
Outputs  
moduleIDOut (LabVIEW only) A copy of moduleID
value Digital value with negated logic: 0 (ON) or 1 (OFF).
Negative numbers indicate an error, see Error Codes.
errorOut See Error Codes
C
int SD_Module_PXItriggerRead(int moduleID, int nPXItrigger);
C++
int SD_Module_PXItriggerRead(int moduleID, int nPXItrigger);
Visual Studio .NET, MATLAB
int SD_Module::PXItriggerRead(int nPXItrigger);
Python
SD_Module.PXItriggerRead(nPXItrigger, value)
LabVIEW
Available: No
M3601A
Available: No
(The value can be accessed using math operations: for example, MathAssign.)

SD_AOU Functions

 

channelWaveShape

Sets the waveshape type for the selected channel.

Parameters
Name Description
Inputs  
moduleID (Non-object-oriented languages only)
Module identifier, returned by open
nChannel Channel number
waveShape

Channel waveshape type

waveShape Description Name Value
HIZ The output signal is set to HIZ
(No output signal is provided.) *
AOU_HIZ -1
No Signal The output signal is set to 0.
All other channel settings are maintained.
AOU_OFF (default) 0
Sinusoidal Generated by the Function Generator AOU_SINUSOIDAL 1
Triangular Generated by the Function Generator AOU_TRIANGULAR 2
Square Generated by the Function Generator AOU_SQUARE 4
DC Voltage Generated by the Amplitude Modulator AOU_DC 5
Arbitrary
Waveform
Generated by the Arbitrary Waveform Generator
See AWG Waveform Types.
AOU_AWG 6
Partner
Channel
Only for odd channels. It is the output of the
previous channel (to create differential signals, etc.)
AOU_PARTNER 8
* Only available for Keysight M3202A PXIe AWG model

 

errorIn (LabVIEW only) If it contains an error, the function will not be executed and errorIn will be passed to errorOut.
Outputs  
moduleIDout (LabVIEW only) A copy of moduleID
errorOut See Error Codes

 

 

C
int SD_AOU_channelWaveShape(int moduleID, int nChannel, int waveShape);
C++
int SD_AOU::channelWaveShape(int nChannel, int waveShape);
Visual Studio .NET, MATLAB
int SD_AOU::channelWaveShape(int nChannel, int waveShape);
Python
SD_AOU.channelWaveShape(nChannel, waveShape)
LabVIEW
channelWaveShape.vi

M3601A
Available: Yes

channelFrequency

Sets the frequency, for the selected channel, of the periodic signals generated by the Function Generator block.

Parameters
Name Description
Inputs  
moduleID (Non-object-oriented languages only)
Module identifier, returned by open
nChannel Channel number
frequency Frequency in Hz.
(Refer to the product's datasheet for frequency specifications.)
errorIn (LabVIEW only) If it contains an error, the function will not be executed and errorIn will be passed to errorOut.
Outputs  
moduleIDout (LabVIEW only) A copy of moduleID
errorOut See Error Codes
C
int SD_AOU_channelFrequency(int moduleID, int nChannel, double frequency);
C++
int SD_AOU::channelFrequency(int nChannel, double frequency);
Visual Studio .NET, MATLAB
int SD_AOU::channelFrequency(int nChannel, double frequency);
Python
SD_AOU.channelFrequency(nChannel, frequency)
LabVIEW
channelFrequency.vi

M3601A
Available: Yes

channelPhase

Sets the phase, for the selected channel, of the periodic signals generated by the Function Generator block.

Parameters
Name Description
Inputs  
moduleID (Non-object-oriented languages only)
Module identifier, returned by open
nChannel Channel number
phase Phase in degrees.
(Refer to the product's datasheet for phase specifications.)
errorIn (LabVIEW only) If it contains an error, the function will not be executed and errorIn will be passed to errorOut.
Outputs  
moduleIDout (LabVIEW only) A copy of moduleID
errorOut See Error Codes
C
int SD_AOU_channelPhase(int moduleID, int nChannel, double phase);
C++
int SD_AOU::channelPhase(int nChannel, double phase);
Visual Studio .NET, MATLAB
int SD_AOU::channelPhase(int nChannel, double phase);
Python
SD_AOU.channelPhase(nChannel, phase)
LabVIEW
channelPhase.vi

M3601A
Available: Yes

channelPhaseReset

Resets the accumulated phase for the selected channel. The accumulated phase is the result of the phase continuous operation of the Function Generator block.

Parameters
Name Description
Inputs  
moduleID (Non-object-oriented languages only)
Module identifier, returned by open
nChannel Channel to reset
errorIn (LabVIEW only) If it contains an error, the function will not be executed and errorIn will be passed to errorOut.
Outputs  
moduleIDout (LabVIEW only) A copy of moduleID
errorOut See Error Codes
C
int SD_AOU_channelPhaseReset(int moduleID, int nChannel);
C++
int SD_AOU::channelPhaseReset(int nChannel);
Visual Studio .NET, MATLAB
int SD_AOU::channelPhaseReset(int nChannel);
Python
SD_AOU.channelPhaseReset(nChannel)
LabVIEW
channelPhaseReset.vi

M3601A
Available: Yes

channelPhaseResetMultiple

Resets the accumulated phase of multiple selected channels, simultaneously.
This accumulated phase is the result of the phase continuous operation of each channel's Function Generator block.

Parameters
Name Description
Inputs  
moduleID (Non-object-oriented languages only)
Module identifier, returned by open
channelMask Mask to select the channels to reset
(LSB is channel 1, bit 1 is channel 2, and so forth)
errorIn (LabVIEW only) If it contains an error, the function will not be executed and errorIn will be passed to errorOut.
Outputs  
moduleIDout (LabVIEW only) A copy of moduleID
errorOut See Error Codes
C
int SD_AOU_channelPhaseResetMultiple(int moduleID, int channelMask);
C++
int SD_AOU::channelPhaseResetMultiple(int channelMask);
Visual Studio .NET, MATLAB
int SD_AOU::channelPhaseResetMultiple(int channelMask);
Python
SD_AOU.channelPhaseResetMultiple(channelMask)
LabVIEW
channelPhaseResetMultiple.vi

M3601A
Available: No
(Multiple PhaseReset from different channels can be executed at once.)

channelAmplitude

Sets the amplitude of a channel.
See Channel Amplitude and DC Offset .

Parameters
Name Description
Inputs  
moduleID (Non-object-oriented languages only)
Module identifier, returned by open
nChannel Channel number
amplitude Amplitude in volts (–1.5 V to 1.5 V)
errorIn (LabVIEW only) If it contains an error, the function will not be executed and errorIn will be passed to errorOut.
Outputs  
moduleIDout (LabVIEW only) A copy of moduleID
errorOut See Error Codes
C
int SD_AOU_channelAmplitude(int moduleID, int nChannel, double amplitude);
C++
int SD_AOU::channelAmplitude(int nChannel, double amplitude);
Visual Studio .NET, MATLAB
int SD_AOU::channelAmplitude(int nChannel, double amplitude);
Python
SD_AOU.channelAmplitude(nChannel, amplitude)
LabVIEW
channelAmplitude.vi

M3601A
Available: Yes

channelOffset

Sets the DC offset of a channel.
See Channel Amplitude and DC Offset .

Parameters
Name Description
Inputs  
moduleID (Non-object-oriented languages only)
Module identifier, returned by open
nChannel Channel number
offset DC offset in volts (–1.5 V to 1.5 V)
errorIn (LabVIEW only) If it contains an error, the function will not be executed and errorIn will be passed to errorOut.
Outputs  
moduleIDout (LabVIEW only) A copy of moduleID
errorOut See Error Codes
C
int SD_AOU_channelOffset(int moduleID, int nChannel, double offset);
C++
int SD_AOU::channelOffset(int nChannel, double offset);
Visual Studio .NET, MATLAB
int SD_AOU::channelOffset(int nChannel, double offset);
Python
SD_AOU.channelOffset(nChannel, offset)
LabVIEW
channelOffset.vi

M3601A
Available: Yes

modulationAngleConfig

Configures the modulation in frequency or phase for the selected channel.
See Channel Frequency and Phase .

Parameters
Name Description
Inputs  
moduleID (Non-object-oriented languages only)
Module identifier, returned by open
nChannel Channel number
modulationType Angle modulation options
OptionDescriptionNameValue
No
Modulation
Modulation is disabledAOU_MOD_OFF (default)0
Frequency
Modulation
The AWG is used to modulate the channel frequencyAOU_MOD_FM1
Frequency
Modulation (32 bits)
The AWG is used to modulate the channel frequency with 32 bit resolutionAOU_MOD_FM_32b1
Phase
Modulation
The AWG is used to modulate the channel phaseAOU_MOD_PM2
deviationGain Gain for the normalized modulating signal
errorIn (LabVIEW only) If it contains an error, the function will not be executed and errorIn will be passed to errorOut.
Outputs  
moduleIDout (LabVIEW only) A copy of moduleID
errorOut See Error Codes
C
int SD_AOU_modulationAngleConfig(int moduleID, int nChannel, int modulationType, int deviationGain);
C++
int SD_AOU::modulationAngleConfig(int nChannel, int modulationType, int deviationGain);
Visual Studio .NET, MATLAB
int SD_AOU::modulationAngleConfig(int nChannel, int modulationType, int deviationGain);
Python
SD_AOU.modulationAngleConfig(nChannel, modulationType, deviationGain)
LabVIEW
modulationAngleConfig.vi

M3601A
Available: Yes

modulationAmplitudeConfig

Configures the modulation in amplitude or offset for the selected channel.
See Channel Amplitude and DC Offset .

Parameters
Name Description
Inputs  
moduleID (Non-object-oriented languages only)
Module identifier, returned by open
nChannel Channel number
modulationType Amplitude modulation options
OptionDescriptionNameValue
No
Modulation
Modulation is disabled. The channel amplitude and offset are only set by the main registers.AOU_MOD_OFF (default)0
Amplitude
Modulation
The modulating signal is used to modulate the channel amplitude.AOU_MOD_AM1
Offset
Modulation
The modulating signal is used to modulate the channel offset.AOU_MOD_OFFSET2
deviationGain Gain for the normalized modulating signal
errorIn (LabVIEW only) If it contains an error, the function will not be executed and errorIn will be passed to errorOut.
Outputs  
moduleIDout (LabVIEW only) A copy of moduleID
errorOut See Error Codes
C
int SD_AOU_modulationAmplitudeConfig(int moduleID, int nChannel, int modulationType, int deviationGain);
C++
int SD_AOU::modulationAmplitudeConfig(int nChannel, int modulationType, int deviationGain);
Visual Studio .NET, MATLAB
int SD_AOU::modulationAmplitudeConfig(int nChannel, int modulationType, int deviationGain);
Python
SD_AOU.modulationAmplitudeConfig(nChannel, modulationType, deviationGain)
LabVIEW
modulationAmplitudeConfig.vi

M3601A
Available: Yes

modulationIQconfig

Configures the IQ modulation for the selected channel.
See IQ Modulation (Quadrature Modulator Block).

Parameters
Name Description
Inputs  
moduleID (Non-object-oriented languages only)
Module identifier, returned by open
nChannel Channel number
enable Enable (value 1) or Disable (value 0) the IQ modulation
errorIn (LabVIEW only) If it contains an error, the function will not be executed and errorIn will be passed to errorOut.
Outputs  
moduleIDout (LabVIEW only) A copy of moduleID
errorOut See Error Codes
C
int SD_AOU_modulationIQconfig(int moduleID, int nChannel, int enable);
C++
int SD_AOU::modulationIQconfig(int nChannel, int enable);
Visual Studio .NET, MATLAB
int SD-AOU::modulationIQconfig(int nChannel, int enable);
Python
SD_AOU.modulationIQconfig(nChannel, enable)
LabVIEW
modulationIQconfig.vi

M3601A
Available: No

 

clockIOconfig

Configures the operation of the clock output connector.
See CLK Output Options.

Parameters
Name Description
Inputs  
moduleID (Non-object-oriented languages only)
Module identifier, returned by open
clockConfig Enable (value 1) or Disable (value 0) clock connector
OptionDescriptionValue
DisableThe CLK connector is disabled.0
CLKref
Output
The reference clock is available at the CLK connector.1
errorIn (LabVIEW only) If it contains an error, the function will not be executed and errorIn will be passed to errorOut.
Outputs  
moduleIDout (LabVIEW only) A copy of moduleID
errorOut See Error Codes
C
int SD_AOU_clockIOconfig(int moduleID, int clockConfig);
C++
int SD_AOU::clockIOconfig(int clockConfig);
Visual Studio .NET, MATLAB
int SD_AOU::clockIOconfig(int clockConfig);
Python
SD_AOU.clockIOconfig(clockConfig)
LabVIEW
clockIOconfig.vi

M3601A
Available: No

waveformLoad

Loads the specified waveform into the module's onboard RAM.
Waveforms must first be created with new .

Waveforms are loaded at different speeds depending on their length, longer waveforms will load at a faster rate. (e.g. 1000 point waveforms will load at 2 MB/s, waveforms with 10,000 points will load at 20 MB/s, and waveforms with 1,000,000 points will load at 44 MB/s). Regardless of waveform size, a maximum of 1024 waveforms can be loaded into the module's onboard RAM.

Parameters
Name Description
Inputs  
moduleID (Non-object-oriented languages only) Module identifier, returned by open
waveformID Waveform identifier
waveformObject Pointer to the waveform object
waveformType

Waveform type, used in the waveform file and in this function, defines the type of waveform to create; this parameter is used to internally configure the AWG.

Option Description Name Value
Analog Analog normalized waveforms (-1 to 1) defined with doubles WAVE_ANALOG 0
Analog Dual Analog normalized waveforms (-1 to 1) defined with doubles, with two components (A and B) WAVE_ANALOG_DUAL 7
IQ* Analog normalized waveforms (-1 to 1) defined with doubles, with two components (I and Q) WAVE_IQ 2
IQ Polar* Analog waveforms (-1 to 1 module, -180 to +180 phase) defined with doubles, with two components (Magnitude and Phase) WAVE_IQPOLAR 3
Digital Digital waveforms defined with integers WAVE_DIGITAL 5
* When using IQ or IQ Polar, each component will only play at a maximum rate of 500 MSa/s.
See AWG Waveform Types.
waveformPoints Number of points of the waveform, which must be a multiple of a certain number of points. See AWG specifications.
waveformDataRaw Array with waveform points. In dual and IQ waveforms, the waveform points
are interleaved (WaveformA0, WaveformB0, WaveformA1, etc.)
waveformNumber Waveform number to identify the waveform in subsequent related function calls. This value must be in the (0 to n) range, and in order to optimize the memory usage, it should be as low as possible
paddingMode

If 0, the waveform is loaded as is and the zeros are added at the end if the number of points is not a multiple of the number required by the AWG.

If 1, the waveform is loaded n times (using DMA) until the total number of points is a multiple of the number of points required by the AWG (only for waveforms with an even number of points).

errorIn (LabVIEW only) If it contains an error, the function will not be executed and errorIn will be passed to errorOut.
Outputs  
moduleIDOut (LabVIEW only) A copy of moduleID
availableRAM Available onboard RAM in waveform points,
or negative numbers that indicate an error, see Error Codes.
errorOut See Error Codes
C
int SD_AOU_waveformLoad(int moduleID, int waveformID, int waveformNumber, int paddingMode);
 
int SD_AOU_waveformLoadArrayInt16(int moduleID, int waveformType, int waveformPoints, short *waveformDataRaw, int waveformNumber, int paddingMode);
C++
int SD_AOU::waveformLoad(SD_Wave* waveformObject, int waveformNumber, int paddingMode);
 
int SD_AOU::waveformLoad(int waveformType, int waveformPoints, short* waveformDataRaw, int waveformNumber, int paddingMode);
Visual Studio .NET, MATLAB
int SD_AOU::waveformLoad(SD_Wave waveformObject, int waveformNumber, int paddingMode);
 
int SD_AOU::waveformLoad(int waveformType, short[] waveformDataRaw, int waveformNumber, int paddingMode);
Python
SD_AOU.waveformLoad(waveformObject, waveformNumber, paddingMode)
 
SD_AOU.waveformLoadInt16(waveformType, waveformDataRaw, waveformNumber, paddingMode)
LabVIEW
waveformLoadWave.vi (Note that LabVIEW uses a different function name.)

M3601A
Available: No

waveformReLoad

Replaces an existing waveform located in a module's onboard RAM. The size of the new waveform must be smaller than or equal to the existing waveform.

Parameters
Name Description
Inputs  
moduleID (Non-object-oriented languages only) Module identifier, returned by open
waveformID Waveform identifier, see SD_Wave Functions (new and delete)
waveformObject Pointer to the waveform object, see SD_Wave Functions (new and delete)
waveformType

Waveform type, used in the waveform file and in this function, defines the type of waveform to create; this parameter is used to internally configure the AWG.

Option Description Name Value
Analog Analog normalized waveforms (-1 to 1) defined with doubles WAVE_ANALOG 0
Analog Dual Analog normalized waveforms (-1 to 1) defined with doubles, with two components (A and B) WAVE_ANALOG_DUAL 7
IQ* Analog normalized waveforms (-1 to 1) defined with doubles, with two components (I and Q) WAVE_IQ 2
IQ Polar* Analog waveforms (-1 to 1 module, -180 to +180 phase) defined with doubles, with two components (Magnitude and Phase) WAVE_IQPOLAR 3
Digital Digital waveforms defined with integers WAVE_DIGITAL 5
* When using IQ or IQ Polar, each component will only play at a maximum rate of 500 MSa/s.
See AWG Waveform Types.
waveformPoints Number of points of the waveform, which must be a multiple of a certain number of points. See AWG specifications.
waveformDataRaw Array with waveform points. In dual and IQ waveforms, the waveform points
are interleaved (WaveformA0, WaveformB0, WaveformA1, etc.).
waveformNumber Waveform number to identify the waveform in subsequent related function calls.
This value must be in the (0 to n) range, and in order to optimize the memory usage, it should be as low as possible.
paddingMode

If 0, waveform is loaded as is, and zeros are added at the end if the number of points is not a multiple of the number required by the AWG.

If 1, waveform is loaded n times (using DMA) until the total number of points is a multiple of the number required by the AWG (only for waveforms with an even number of points).

errorIn (LabVIEW only) If it contains an error, the function will not be executed and errorIn will be passed to errorOut.
Outputs  
moduleIDOut (LabVIEW only) A copy of moduleID
availableRAM Available onboard RAM in waveform points.
Negative numbers indicate an error, see Error Codes.
errorOut See Error Codes
C
int SD_AOU_waveformReLoad(int moduleID, int waveformID, int waveformNumber, int paddingMode);
 
int SD_AOU_waveformReLoadArrayInt16(int moduleID, int waveformType, int waveformPoints, short *waveformDataRaw, int waveformNumber, int paddingMode);
C++
int SD_AOU::waveformReLoad(SD_Wave* waveformObject, int waveformNumber, int paddingMode);
 
int SD_AOU::waveformReLoad(int waveformType, int waveformPoints, short* waveformDataRaw, int waveformNumber, int paddingMode);
Visual Studio .NET, MATLAB
int SD_AOU::waveformReLoad(SD_Wave waveformObject, int waveformNumber, int paddingMode);
 
int SD_AOU::waveformReLoad(int waveformType, short[] waveformDataRaw, int waveformNumber, int paddingMode);
Python
SD_AOU.waveformReLoad(waveformObject, waveformNumber, paddingMode)
 
SD_AOU.waveformReLoadArrayInt16(waveformType, waveformDataRaw, waveformNumber, paddingMode)
LabVIEW
waveformReLoadWave.vi (Note that LabVIEW uses a different function name.)

M3601A
Available: No

waveformFlush

Deletes all waveforms from the module's onboard RAM
and flushes all the AWG queues. See also AWGflush .

Parameters
Name Description
Inputs  
moduleID (Non-object-oriented languages only)
Module identifier, returned by open
errorIn (LabVIEW only) If it contains an error, the function will not be executed and errorIn will be passed to errorOut.
Outputs  
moduleIDOut (LabVIEW only) A copy of moduleID
errorOut See Error Codes
C
int SD_AOU_waveformFlush(int moduleID);
C++
int SD_AOU::waveformFlush();
Visual Studio .NET, MATLAB
int SD_AOU::waveformFlush();
Python
SD_AOU.waveformFlush()
LabVIEW
waveformFlush.vi

M3601A
Available: No

 

 

AWG

Provides a one-step method to load, queue, and start a single waveform in one of the module's AWGs. The waveform can be loaded from an array of points in memory or from a file.

Step-by-Step Programming: This AWG function is equivalent to:
  1. creating a waveform with new
  2. calling waveformLoad
  3. followed by AWGqueueWaveform
  4. and then calling AWGstart

Using these functions sequentially allows complete control of memory usage, data transfer times between the PC and the module, and the ability to create generation sequences and control the generation start time precisely.
See Working with AWG Waveforms.
Parameters
Name Description
Inputs  
moduleID (Non-object-oriented languages only)
Module identifier, returned by open
nAWG AWG channel number
triggerMode Trigger method to launch the waveforms queued in an AWG.
OptionDescriptionNameValue
Immediate (Auto)The waveform is launched immediately after AWGstart , or when the previous waveform in the queue finishes.AUTOTRIG0
Software / HVISoftware trigger. The AWG is triggered by AWGtrigger provided that the AWG is running. AWGtrigger can be executed from the user application (VI) or from an HVI. See Overview of Keysight Software and Programming Tools.SWHVITRIG1
Software / HVI
(per cycle)
Software trigger. Identical to the previous option, but a trigger is required per each waveform cycle.SWHVITRIG_CYCLE5
External TriggerHardware trigger. The AWG waits for an external trigger source for the AWGs. (This is set by the "externalSource"
in AWGtriggerExternalConfig .)
EXTTRIG2
External Trigger (per cycle)Hardware trigger. Identical to the previous option,
but a trigger is required per each waveform cycle.
EXTTRIG_CYCLE6
startDelay Defines the delay between the trigger and the waveform launch in tens of ns
cycles Number of times the waveform is played once launched. (Zero specifies infinite cycles.)
prescaler Waveform prescaler value, to reduce the effective sampling rate by prescaler x 5
Name Description
waveformType

Waveform type, used in the waveform file and in this function, defines the type of waveform to create; this parameter is used to internally configure the AWG.

Option Description Name Value
Analog Analog normalized waveforms (-1 to 1) defined with doubles WAVE_ANALOG 0
Analog Dual Analog normalized waveforms (-1 to 1) defined with doubles, with two components (A and B) WAVE_ANALOG_DUAL 7
IQ* Analog normalized waveforms (-1 to 1) defined with doubles, with two components (I and Q) WAVE_IQ 2
IQ Polar* Analog waveforms (-1 to 1 module, -180 to +180 phase) defined with doubles, with two components (Magnitude and Phase) WAVE_IQPOLAR 3
Digital Digital waveforms defined with integers WAVE_DIGITAL 5
* When using IQ or IQ Polar, each component will only play at a maximum rate of 500 MSa/s.
See AWG Waveform Types.
waveformPoints Number of points of the waveform, which must be a multiple of a certain number of points. See AWG specifications.
waveformDataA Array with waveform points. Analog waveforms are defined with floating point numbers, which correspond to a normalized amplitude (-1 to 1).
waveformDataB Array with waveform points, only the waveforms which have a second component
(for example, Q in IQ modulations defined in Cartesian, or phase in IQ modulations defined with polar)
waveformFile File containing the waveform points
errorIn (LabVIEW only) If it contains an error, the function will not be executed and errorIn will be passed to errorOut.
Outputs  
moduleIDOut (LabVIEW only) A copy of moduleID
availableRAM Available onboard RAM in waveform points.
Negative numbers indicate an error, see Error Codes.
errorOut See Error Codes
C
int SD_AOU_AWGfromArray(int moduleID, int nAWG, int triggerMode, int startDelay, int cycles, int prescaler, int waveformType, int waveformPoints, double* waveformDataA, double* waveformDataB=0);
 
int SD_AOU_AWGfromFile(int moduleID, int nAWG, char* waveformFile, int triggerMode, int startDelay, int cycles, int prescaler);
C++
int SD_AOU::AWG(int nAWG, int triggerMode, int startDelay, int cycles, int prescaler, int waveformType, int waveformPoints, double* waveformDataA, double* waveformDataB=0);
 
int SD_AOU::AWG(int nAWG, char* waveformFile, int triggerMode, int startDelay, int cycles, int prescaler);
Visual Studio .NET, MATLAB
int SD_AOU::AWG(int nAWG, int triggerMode, int startDelay, int cycles, int prescaler, int waveformType, double[] waveformDataA);
 
int SD_AOU::AWG(int nAWG, int triggerMode, int startDelay, int cycles, int prescaler, int waveformType, double[] waveformDataA, double[] waveformDataB);
 
int SD_AOU::AWG(int nAWG, string waveformFile, int triggerMode, int startDelay, int cycles, int prescaler);
 
Python
SD_AOU.AWGfromArray(nAWG, triggerMode, startDelay, cycles, prescaler, waveformType, waveformDataA, waveformDataB=0)
 
SD_AOU.AWGfromFile(nAWG, waveformFile, triggerMode, startDelay, cycles, prescaler)
 
LabVIEW
AWGfromFile.vi

AWGfromArray.vi

M3601A
Available: No

AWGqueueWaveform

Queues the specified waveform in one of the module's AWGs. The waveform must be already loaded in the module's onboard RAM. See waveformLoad . The number of queued waveforms (regardless of cycles) is limited to 1024; AWGqueueWaveform can only be called 1024 times until the waveforms need to start being consumed by playing them.

 

Parameters
Name Description
Inputs  
moduleID (Non-object-oriented languages only) Module identifier, returned by open
nAWG AWG channel number
waveformNumber Waveform to be queued into the AWG. It must be already loaded using waveformLoad .
triggerMode Trigger method to launch the waveforms queued in an AWG.
OptionDescriptionNameValue
Immediate (Auto)The waveform is launched immediately after AWGstart , or when the previous waveform in the queue finishes.AUTOTRIG0
Software / HVISoftware trigger. The AWG is triggered by AWGtrigger provided that the AWG is running. AWGtrigger can be executed from the user application (VI) or from an HVI.
See Overview of Keysight Software and Programming Tools.
SWHVITRIG1
Software / HVI
(per cycle)
Software trigger. Identical to the previous option,
but a trigger is required per each waveform cycle
SWHVITRIG_CYCLE5
External TriggerHardware trigger. The AWG waits for an external trigger source for the AWGs (This is set by the "externalSource" in AWGtriggerExternalConfig .)
EXTTRIG2
External Trigger (per cycle)Hardware trigger. Identical to the previous option,
but a trigger is required per each waveform cycle.
EXTTRIG_CYCLE6
startDelay

Defines the delay between the trigger and the waveform launch in tens of ns.

The startDelay parameter can be up to (2 16) - 1 cycles = (65535 * 10 ns) = 655.35 us.

cycles Number of times the waveform is repeated once launched. (Zero specifies infinite cycles.)
prescaler Waveform prescaler value, to reduce the effective sampling rate by prescaler x 5
errorIn (LabVIEW only) If it contains an error, the function will not be executed and errorIn will be passed to errorOut.
Outputs  
moduleIDOut (LabVIEW only) A copy of moduleID
errorOut See Error Codes
C
int SD_AOU_AWGqueueWaveform(int moduleID, int nAWG, int waveformNumber, int triggerMode, int startDelay, int cycles, int prescaler);
C++
int SD_AOU::AWGqueueWaveform(int nAWG, int waveformNumber, int triggerMode, int startDelay, int cycles, int prescaler);
Visual Studio .NET, MATLAB
int SD_AOU::AWGqueueWaveform(int nAWG, int waveformNumber, int triggerMode, int startDelay, int cycles, int prescaler);
Python
SD_AOU.AWGqueueWaveform(nAWG, waveformNumber, triggerMode, startDelay, cycles, prescaler)
LabVIEW
AWGqueueWaveform.vi

M3601A
Available: Yes

 

AWGflush

Empties the queue of the selected AWG channel. Waveforms are not removed from the module's onboard RAM.

Parameters
Name Description
Inputs  
moduleID (Non-object-oriented languages only)
Module identifier, returned by open
nAWG AWG channel number
errorIn (LabVIEW only) If it contains an error, the function will not be executed and errorIn will be passed to errorOut.
Outputs  
moduleIDOut (LabVIEW only) A copy of moduleID
errorOut See Error Codes
C
int SD_AOU_AWGflush(int moduleID, int nAWG);
C++
int SD_AOU::AWGflush(int nAWG);
Visual Studio .NET, MATLAB
int SD_AOU::AWGflush(int nAWG);
Python
SD_AOU.AWGflush(nAWG)
LabVIEW
AWGflush.vi

M3601A
Available: Yes

 

AWGstart

Starts the selected AWG from the beginning of its queue. The generation starts immediately or when a trigger is received, depending on the trigger selection of the first waveform in the queue and provided that at least one waveform is queued in the AWG. See AWGqueueWaveform or AWG .

After calling AWGstart, there is a minimum amount of time delay (in nanoseconds) required before the AWG can be triggered. This minimum amount of time delay is dependent on the waveform size (number of samples) to be played by the AWG; this time delay could be up to 900 ns.

Parameters
Name Description
Inputs  
moduleID (Non-object-oriented languages only) Module identifier, returned by open
nAWG AWG channel number
errorIn (LabVIEW only) If it contains an error, the function will not be executed and errorIn will be passed to errorOut.
Outputs  
moduleIDOut (LabVIEW only) A copy of moduleID
errorOut See Error Codes
C
int SD_AOU_AWGstart(int moduleID, int nAWG);
C++
int SD_AOU::AWGstart(int nAWG);
Visual Studio .NET, MATLAB
int SD_AOU::AWGstart(int nAWG);
Python
SD_AOU.AWGstart(nAWG)
LabVIEW
AWGstart.vi

M3601A
Available: Yes

AWGstartMultiple

Starts the selected AWGs from the beginning of their queues. The generation will start immediately or when a trigger is received, depending on the trigger selection of the first waveform in their queues and provided that at least one waveform is queued in these AWGs. See AWGqueueWaveform or AWG .

Parameters
Name Description
Inputs  
moduleID (Non-object-oriented languages only)
Module identifier, returned by open
AWGmask Mask to select the AWGs to be started
(LSB is AWG 0, bit 1 is AWG 1, and so forth)
errorIn (LabVIEW only) If it contains an error, the function will not be executed and errorIn will be passed to errorOut.
Outputs  
moduleIDOut (LabVIEW only) A copy of moduleID
errorOut See Error Codes
C
int SD_AOU_AWGstartMultiple(int moduleID, int AWGmask);
C++
int SD_AOU::AWGstartMultiple(int AWGmask);
Visual Studio .NET, MATLAB
int SD_AOU::AWGstartMultiple(int AWGmask);
Python
SD_AOU.AWGstartMultiple(AWGmask)
LabVIEW
AWGstartMultiple.vi

M3601A
Available: No
(Multiple AWGstart from different channels can be executed at once.)

AWGpause

Pauses the selected AWG leaving the last waveform point at the output, and ignoring all incoming triggers. The AWG can be resumed by calling AWGresume .

Parameters
Name Description
Inputs  
moduleID (Non-object-oriented languages only)
Module identifier, returned by open
nAWG AWG channel number
errorIn (LabVIEW only) If it contains an error, the function will not be executed and errorIn will be passed to errorOut.
Outputs  
moduleIDOut (LabVIEW only) A copy of moduleID
errorOut See Error Codes
C
int SD_AOU_AWGpause(int moduleID, int nAWG);
C++
int SD_AOU::AWGpause(int nAWG);
Visual Studio .NET, MATLAB
int SD_AOU::AWGpause(int nAWG);
Python
SD_AOU.AWGpause(nAWG)
LabVIEW
AWGpause.vi

M3601A
Available: Yes

AWGpauseMultiple

Pauses the selected AWGs leaving the last waveform point at the output of each channel, and ignoring all incoming triggers. The AWGs can be resumed by calling AWGresumeMultiple .

Parameters
Name Description
Inputs  
moduleID (Non-object-oriented languages only)
Module identifier, returned by open
AWGmask Mask to select the AWG channels to be paused
(LSB is Channel 1, bit 1 is Channel 2, and so forth)
errorIn (LabVIEW only) If it contains an error, the function will not be executed and errorIn will be passed to errorOut.
Outputs  
moduleIDOut (LabVIEW only) A copy of moduleID
errorOut See Error Codes
C
int SD_AOU_AWGpauseMultiple(int moduleID, int AWGmask);
C++
int SD_AOU::AWGpauseMultiple(int AWGmask);
Visual Studio .NET, MATLAB
int SD_AOU::AWGpauseMultiple(int AWGmask);
Python
SD_AOU.AWGpauseMultiple(AWGmask)
LabVIEW
AWGpauseMultiple.vi

M3601A
Available: No
(Multiple AWGpause from different channels can be executed at once.)

AWGresume

Resumes the operation of the selected AWG from the current position of the queue. The waveform generation can be paused by calling AWGpause .

Parameters
Name Description
Inputs  
moduleID (Non-object-oriented languages only)
Module identifier, returned by open
nAWG AWG channel number
errorIn (LabVIEW only) If it contains an error, the function will not be executed and errorIn will be passed to errorOut.
Outputs  
moduleIDOut (LabVIEW only) A copy of moduleID
errorOutS See Error Codes
C
int SD_AOU_AWGresume(int moduleID, int nAWG);
C++
int SD_AOU::AWGresume(int nAWG);
Visual Studio .NET, MATLAB
int SD_AOU::AWGresume(int nAWG);
Python
SD_AOU.AWGresume(nAWG)
LabVIEW
AWGresume.vi

M3601A
Available: Yes

AWGresumeMultiple

Resumes the operation of the selected AWGs from the current position of their respective queues. The waveform generation of multiple AWGs can be paused by calling AWGpauseMultiple .

Parameters
Name Description
Inputs  
moduleID (Non-object-oriented languages only)
Module identifier, returned by open
AWGmask Mask to select the AWG channels to be resumed
(LSB is Channel 1, bit 1 is Channel 2, and so forth)
errorIn (LabVIEW only) If it contains an error, the function will not be executed and errorIn will be passed to errorOut.
Outputs  
moduleIDOut (LabVIEW only) A copy of moduleID
errorOut See Error Codes
C
int SD_AOU_AWGresumeMultiple(int moduleID, int AWGmask);
C++
int SD_AOU::AWGresumeMultiple(int AWGmask);
Visual Studio .NET, MATLAB
int SD_AOU::AWGresumeMultiple(int AWGmask);
Python
SD_AOU.AWGresumeMultiple(AWGmask)
LabVIEW
AWGresumeMultiple.vi

M3601A
Available: No
(Multiple AWGresume from different channels can be executed at once.)

AWGstop

Stops the selected AWG, setting the output to zero, and resetting the AWG queue to its initial position. All following incoming triggers are ignored.

Parameters
Name Description
Inputs  
moduleID (Non-object-oriented languages only)
Module identifier, returned by open
nAWG AWG channel number
errorIn (LabVIEW only) If it contains an error, the function will not be executed and errorIn will be passed to errorOut.
Outputs  
moduleIDOut (LabVIEW only) A copy of moduleID
errorOut See Error Codes
C
int SD_AOU_AWGstop(int moduleID, int nAWG);
C++
int SD_AOU::AWGstop(int nAWG);
Visual Studio .NET, MATLAB
int SD_AOU::AWGstop(int nAWG);
Python
SD_AOU.AWGstop(nAWG)
LabVIEW
AWGstop.vi

M3601A
Available: Yes

AWGstopMultiple

Stops the selected AWGs, setting their outputs to zero, and resetting their respective queues to the initial positions. All following incoming triggers are ignored.

Parameters
Name Description
Inputs  
moduleID (Non-object-oriented languages only)
Module identifier, returned by open
AWGmask Mask to select the AWG channels to be stopped
(LSB is Channel 1, bit 1 is Channel 2, and so forth)
errorIn (LabVIEW only) If it contains an error, the function will not be executed and errorIn will be passed to errorOut.
Outputs  
moduleIDOut (LabVIEW only) A copy of moduleID
errorOut See Error Codes
C
int SD_AOU_AWGstopMultiple(int moduleID, int AWGmask);
C++
int SD_AOU::AWGstopMultiple(int AWGmask);
Visual Studio .NET, MATLAB
int SD_AOU::AWGstopMultiple(int AWGmask);
Python
SD_AOU.AWGstopMultiple(AWGmask)
LabVIEW
AWGstopMultiple.vi

M3601A
Available: No
(Multiple AWGstop from different channels can be executed at once.)

AWGreset

Resets the pointer variable that manages the AWG queue. After a call to AWGreset, the pointer variable is pointing to the first queued waveform. Whenever an AWGreset is performed, it is necessary to call AWGresume or AWGstart for the waveform reproduction to start again.

AWGstart consists of a sequential call of AWGreset and AWGresume functions.
AWGreset is available in [3] Keysight M3601A Hard Virtual Instrument (HVI) Design Environment Software only, it cannot be used in any programming language. In M3601A, AWGreset is available to allow the user to execute, at FPGA level, the reset of the queue pointer variable without an automatic AWGresume immediately afterwards.
C
Available: No
C++
Available: No
Visual Studio .NET, MATLAB
Available: No
Python
Available: No
LabVIEW
Available: No
M3601A
Available: Yes

AWGjumpNextWaveform

Forces a jump to the next waveform in the AWG queue. The jump is executed once the current waveform has finished a complete cycle.

Parameters
Name Description
Inputs  
moduleID (Non-object-oriented languages only)
Module identifier, returned by open
nAWG AWG channel number
errorIn (LabVIEW only) If it contains an error, the function will not be executed and errorIn will be passed to errorOut.
Outputs  
moduleIDOut (LabVIEW only) A copy of moduleID
errorOut See Error Codes
C
int SD_AOU_AWGjumpNextWaveform(int moduleID, int nAWG);
C++
int SD_AOU::AWGjumpNextWaveform(int nAWG);
Visual Studio .NET, MATLAB
int SD_AOU::AWGjumpNextWaveform(int nAWG);
Python
SD_AOU.AWGjumpNextWaveform(nAWG)
LabVIEW
AWGjumpNextWaveform.vi

M3601A
Available: Yes

AWGjumpNextWaveformMultiple

Forces a jump to the next waveform in the queue of several AWGs. The jumps are executed once the current waveforms have finished a complete cycle.

Parameters
Name Description
Inputs  
moduleID (Non-object-oriented languages only)
Module identifier, returned by open
AWGmask Mask to select the AWG channel numbers
(LSB is Channel 1, bit 1 is Channel 2, and so forth)
errorIn (LabVIEW only) If it contains an error, the function will not be executed and errorIn will be passed to errorOut.
Outputs  
moduleIDOut (LabVIEW only) A copy of moduleID
errorOut See Error Codes
C
int SD_AOU_AWGjumpNextWaveformMultiple(int moduleID, int AWGmask);
C++
int SD_AOU::AWGjumpNextWaveformMultiple(int AWGmask);
Visual Studio .NET, MATLAB
int SD_AOU::AWGjumpNextWaveformMultiple(int AWGmask);
Python
SD_AOU.AWGjumpNextWaveformMultiple(AWGmask)
LabVIEW
AWGjumpNextWaveformMultiple.vi

M3601A
Available: Yes

AWGisRunning

Returns a value of 1 if the AWG is running or a value of 0 if it is stopped.

Parameters
Name Description
Inputs  
moduleID (Non-object-oriented languages only)
Module identifier, returned by open
nAWG AWG channel number
errorIn (LabVIEW only) If it contains an error, the function will not be executed and errorIn will be passed to errorOut.
Outputs  
moduleIDOut (LabVIEW only) A copy of moduleID
running 1 if the AWG is running, 0 if it is stopped
errorOut See Error Codes
C
int SD_AOU_AWGisRunning(int moduleID, int nAWG);
C++
int SD_AOU::AWGisRunning(int nAWG);
Visual Studio .NET, MATLAB
int SD_AOU::AWGisRunning(int nAWG);
Python
SD_AOU.AWGisRunning(nAWG)
LabVIEW
AWGisRunning.vi

M3601A
Available: No

AWGnWFplaying

Returns the waveformNumber (waveform identifier) of the waveform which is currently being generated by the AWG.

Parameters
Name Description
Inputs  
moduleID (Non-object-oriented languages only)
Module identifier, returned by open
nAWG AWG channel number
errorIn (LabVIEW only) If it contains an error, the function will not be executed and errorIn will be passed to errorOut.
Outputs  
moduleIDOut (LabVIEW only) A copy of moduleID
waveformNumber Waveform identifier (see waveformLoad )
errorOut See Error Codes
C
int SD_AOU_AWGnWFplaying(int moduleID, int nAWG);
C++
int SD_AOU::AWGnWFplaying(int nAWG);
Visual Studio .NET, MATLAB
int SD_AOU::AWGnWFplaying(int nAWG);
Python
SD_AOU.AWGnWFplaying(nAWG)
LabVIEW
AWGnWFplaying.vi

M3601A
Available: No

AWGtriggerExternalConfig

Configures the external triggers for the selected AWG. The external trigger is used in case the waveform is queued with the external trigger mode option.
See AWGqueueWaveform .

Parameters
Name Description
Inputs  
moduleID (Non-object-oriented languages only)
Module identifier, returned by open
nAWG AWG channel number
externalSource AWG external trigger source
OptionDescriptionNameValue
External I/O
Trigger
The AWG trigger is a TRG connector/line of the module. PXI form factor only: this trigger can be synchronized to CLK10.TRIG_EXTERNAL0
PXI
Trigger [0 to n]

PXI form factor only. The AWG external trigger is a
PXI trigger line and is synchronized to CLK10.

For example, to use PXI trigger line 1
on the PXI backplane, use TRIG_PXI1 or 4001.

TRIG_PXI + Trigger No.4000 + Trigger No.
triggerBehavior AWG external trigger behavior
OptionDescriptionNameValue
Active HighTrigger is active when it is at level highTRIGGER_HIGH1
Active LowTrigger is active when it is at level lowTRIGGER_LOW2
Rising EdgeTrigger is active on the rising edgeTRIGGER_RISE3
Falling EdgeTrigger is active on the falling edgeTRIGGER_FALL4
sync 0 for immediate trigger, 1 to synchronize with nearest CLK edge
errorIn (LabVIEW only) If it contains an error, the function will not be executed and errorIn will be passed to errorOut.
Outputs  
moduleIDOut (LabVIEW only) A copy of moduleID
errorOut See Error Codes
C
int SD_AOU_AWGtriggerExternalConfig(int moduleID, int nAWG, int externalSource, int triggerBehavior, int sync);
C++
int SD_AOU::AWGtriggerExternalConfig(int nAWG, int externalSource, int triggerBehavior, int sync);
Visual Studio .NET, MATLAB
int SD_AOU::AWGtriggerExternalConfig(int nAWG, int externalSource, int triggerBehavior, int sync);
Python
SD_AOU.AWGtriggerExternalConfig(nAWG, externalSource, triggerBehavior, sync)
LabVIEW
AWGtriggerExternalConfig.vi

M3601A
Available: No

AWGtrigger

Triggers the selected AWG. The waveform waiting in the current position of the queue is launched provided it is configured with VI/HVI Trigger (triggerMode = 1 or 5).

Parameters
Name Description
Inputs  
moduleID (Non-object-oriented languages only)
Module identifier, returned by open
nAWG AWG channel number
errorIn (LabVIEW only) If it contains an error, the function will not be executed and errorIn will be passed to errorOut.
Outputs  
moduleIDOut (LabVIEW only) A copy of moduleID
errorOut See Error Codes
C
int SD_AOU_AWGtrigger(int moduleID, int nAWG);
C++
int SD_AOU::AWGtrigger(int nAWG);
Visual Studio .NET, MATLAB
int SD_AOU::AWGtrigger(int nAWG);
Python
SD_AOU.AWGtrigger(nAWG)
LabVIEW
AWGtrigger.vi

M3601A
Available: Yes

AWGtriggerMultiple

Triggers the selected AWGs. The waveforms waiting in the current position of their respective queues is launched provided they are configured with an VI/HVI Trigger (triggerMode = 1 or 5).

Parameters
Name Description
Inputs  
moduleID (Non-object-oriented languages only)
Module identifier, returned by open
AWGmask Mask to select the AWG channels to be triggered
(LSB is Channel 1, bit 1 is Channel 2, and so forth)
AWG AWG to be triggered
errorIn (LabVIEW only) If it contains an error, the function will not be executed and errorIn will be passed to errorOut.
Outputs  
moduleIDOut (LabVIEW only) A copy of moduleID
errorOut See Error Codes
C
int SD_AOU_AWGtriggerMultiple(int moduleID, int AWGmask);
C++
int SD_AOU::AWGtriggerMultiple(int AWGmask);
Visual Studio .NET, MATLAB
int SD_AOU::AWGtriggerMultiple(int AWGmask);
Python
SD_AOU.AWGtriggerMultiple(AWGmask)
LabVIEW
AWGtriggerMultiple.vi

M3601A
Available: No
(Multiple AWGtrigger from different channels can be executed at once.)

triggerIOconfig

Configures the trigger line direction.
See Working with I/O Triggers.

 

Parameters

Name Description
Inputs  
moduleID (Non-object-oriented languages only)
Module identifier, returned by open
direction Output (0) or Input (1)
OptionDescriptionNameValue
Trigger Output
(readable)
TRG operates as a general purpose digital output
signal, that can be written by the user software
AOU_TRG_OUT0
Trigger InputTRG operates as a trigger input, or as a general
purpose digital input signal, that can be read by the user software
AOU_TRG_IN1
errorIn (LabVIEW only) If it contains an error, the function will not be executed and errorIn will be passed to errorOut.
Outputs  
moduleIDout (LabVIEW only) A copy of moduleID
errorOut See Error Codes
C
int SD_AOU_triggerIOconfig(int moduleID, int direction);
C++
int SD_AOU::triggerIOconfig(int direction);
Visual Studio .NET, MATLAB
int SD_AOU::triggerIOconfig(int direction);
Python
SD_AOU.triggerIOconfig(direction)
LabVIEW
triggerIOconfig.vi

M3601A
Available: No

triggerIOwrite

Sets the trigger output to be ON or OFF. The trigger must be configured as output using triggerIOconfig .

Parameters
Name Description
Inputs  
moduleID (Non-object-oriented languages only)
Module identifier, returned by open
value Trigger output value: 1 (ON), 0 (OFF)
syncMode Sampling/synchronization mode
0 for immediate triggers, 1 to synchronize trigger to nearest CLK edge
OptionDescriptionNameValue
Non-synchronized modeThe trigger is sampled with an internal 100 MHz clockSYNC_NONE0
Synchronized mode(PXI form factor only) The trigger is sampled using CLK10 *SYNC_CLK101
* In synchronized mode, the trigger is synchronized to the nearest clock edge of the 10 MHz clock from the PXI chassis backplane. If using an external trigger, it should also be synchronized to the same 10 MHz reference. The trigger is sampled using CLKsync. (If it is a multiple of 10 MHz,
the maximum processing time would be < 100 ns, varying depending on trigger arrival.
If CLKsync is <10 MHz, the processing time will be >100 ns).
errorIn (LabVIEW only) If it contains an error, the function will not be executed and errorIn will be passed to errorOut.
Outputs  
moduleIDout (LabVIEW only) A copy of moduleID
errorOut See Error Codes
C
int SD_AOU_triggerIOwrite(int moduleID, int value, int syncMode);
C++
int SD_AOU::triggerIOwrite(int value, int syncMode);
Visual Studio .NET, MATLAB
int SD_AOU::triggerIOwrite(int value, int syncMode);
Python
SD_AOU.triggerIOwrite(value, syncMode)
LabVIEW
triggerIOwrite.vi

M3601A
Available: Yes

triggerIOread

Reads the trigger input.

Parameters
Name Description
Inputs  
moduleID (Non-object-oriented languages only)
Module identifier, returned by open
errorIn (LabVIEW only) If it contains an error, the function will not be executed and errorIn will be passed to errorOut.
Outputs  
moduleIDout (LabVIEW only) A copy of moduleID
value Trigger output value: 1 (ON), 0 (OFF).
Negative numbers indicate an error, see Error Codes.
errorOut See Error Codes
C
int SD_AOU_triggerIOread(int moduleID);
C++
int SD_AOU::triggerIOread();
Visual Studio .NET, MATLAB
int SD_AOU::triggerIOread();
Python
SD_AOU.triggerIOread()
LabVIEW
triggerIOread.vi

M3601A
Available: No
(Can be accessed using math operations.)

clockSetFrequency (Requires Option CLV)

Sets the module clock frequency. (See CLKsys in FlexCLK Technology (models w/ variable sampling rate).)

This clockSetFrequency function is only usable for modules with the variable clock Option CLV. This Option is no longer for sale as of November of 2019.
Parameters
Name Description
Inputs  
moduleID (Non-object-oriented languages only)
Module identifier, returned by open
frequency Frequency in Hz. See datasheet for complete specifications.
mode Operation mode of the variable clock system
OptionDescriptionNameValue
Low Jitter ModeThe clock system is set to achieve the lowest jitter, sacrificing tuning speedCLK_LOW_JITTER0
Fast Tuning ModeThe clock system is set to achieve the fastest tuning time,
sacrificing jitter performance
CLK_FAST_TUNE1
errorIn (LabVIEW only) If it contains an error, the function will not be executed and errorIn will be passed to errorOut.
Outputs  
moduleIDout (LabVIEW only) A copy of moduleID
CLKsysFreq* It returns the real frequency applied to the hardware in Hz.
It may differ from the desired frequency due to hardware frequency resolution.
Negative numbers indicate an error, see Error Codes.
errorOut See Error Codes

*In Keysight Programming Libraries v.1.57.61 or older, clockSetFrequency returns CLKsyncFreq, the frequency of the internal CLKsync in Hz (Equation 11)

C
double SD_AOU_clockSetFrequency(int moduleID, double frequency, int mode);
C++
double SD_AOU::clockSetFrequency(double frequency, int mode);
Visual Studio .NET, MATLAB
double SD_AOU::clockSetFrequency(double frequency, int mode);
Python
SD_AOU.clockSetFrequency(frequency, mode)
LabVIEW
clockSetFrequency.vi

M3601A
Available: No

clockGetFrequency

Returns the value in Hz of the module sample rate frequency. (See CLKsys in FlexCLK Technology (models w/ variable sampling rate).) It may differ from the frequency set with the clockSetFrequency (Requires Option CLV) due to the hardware frequency resolution.

Parameters
Name Description
Inputs  
moduleID (Non-object-oriented languages only)
Module identifier, returned by open
errorIn (LabVIEW only) If it contains an error, the function will not be executed and errorIn will be passed to errorOut.
Outputs  
moduleIDout (LabVIEW only) A copy of moduleID
CLKsysFreq* It returns the real frequency applied to the hardware in Hz.
It may differ from the desired frequency due to hardware frequency resolution.
Negative numbers indicate an error, see Error Codes.
errorOut See Error Codes
C
double SD_AOU_clockGetFrequency(int moduleID);
C++
double SD_AOU::clockGetFrequency();
Visual Studio .NET, MATLAB
double SD_AOU::clockGetFrequency();
Python
SD_AOU.clockGetFrequency()
LabVIEW
clockGetFrequency.vi

M3601A
Available: No

clockGetSyncFrequency

Returns the frequency of the internal CLKsync signal in Hz. (See CLKsync in FlexCLK Technology (models w/ variable sampling rate).)

Parameters
Name Description
Inputs  
moduleID (Non-object-oriented languages only)
Module identifier, returned by open
errorIn (LabVIEW only) If it contains an error, the function will not be executed and errorIn will be passed to errorOut.
Outputs  
moduleIDout (LabVIEW only) A copy of moduleID
CLKsyncFreq* It returns the real frequency applied to the hardware in Hz.
It may differ from the desired frequency due to hardware frequency resolution.
Negative numbers indicate an error, see Error Codes.
errorOut See Error Codes
C
int SD_AOU_clockGetSyncFrequency(int moduleID);
C++
int SD_AOU::clockGetSyncFrequency();
Visual Studio .NET, MATLAB
int SD_AOU::clockGetSyncFrequency();
Python
SD_AOU.clockGetSyncFrequency()
LabVIEW
clockGetSyncFrequency.vi

M3601A
Available: No

clockResetPhase

Sets the module in a synchronous state, waiting for the first trigger to reset the phase of the internal clocks CLKsync and AWG . (See CLKsys in FlexCLK Technology (models w/ variable sampling rate).)

Parameters
Name Description
Inputs  
moduleID (Non-object-oriented languages only)
Module identifier, returned by open
triggerBehavior AWG external trigger behavior
OptionDescriptionNameValue
Active HighTrigger is active when it is at level highTRIGGER_HIGH1
Active LowTrigger is active when it is at level lowTRIGGER_LOW2
Rising EdgeTrigger is active on the rising edgeTRIGGER_RISE3
Falling EdgeTrigger is active on the falling edgeTRIGGER_FALL4
PXItrigger PXI trigger number
OptionDescriptionNameValue
External I/O
Trigger
The AWG trigger is a TRG connector/line of the module. PXI form factor only: this trigger can be synchronized to CLK10.TRIG_EXTERNAL0
PXI
Trigger [0 to n]
PXI form factor only. The AWG external trigger is a PXI trigger line and is synchronized to CLK10.TRIG_PXI + Trigger No.4000 + Trigger No.
skew Skew between PXI CLK10 and CLKsync in multiples of 10 ns
errorIn (LabVIEW only) If it contains an error, the function will not be executed and errorIn will be passed to errorOut.
Outputs  
moduleIDout (LabVIEW only) A copy of moduleID
errorOut See Error Codes
C
int SD_AOU_clockResetPhase(int moduleID, int triggerBehavior, int PXItrigger, double skew);
C++
int SD_AOU::clockResetPhase(int triggerBehavior, int PXItrigger, double skew);
Visual Studio .NET, MATLAB
int SD_AOU::clockResetPhase(int triggerBehavior, int PXItrigger, double skew);
Python
SD_AOU.clockResetPhase(triggerBehavior, PXItrigger, skew)
LabVIEW
clockResetPhase.vi

M3601A
Available: No

AWGqueueConfig

Configures the cyclic mode of the queue. All waveforms must be already queued in one of the AWGs of the module. See AWG Waveform Queue System .

Parameters
Name Description
Inputs  
moduleID (Non-object-oriented languages only)
Module identifier, returned by open
nAWG AWG channel number
mode Operation mode of the queue: 0 One shot, 1 Cyclic. See AWG Waveform Queue System .
errorIn (LabVIEW only) If it contains an error, the function will not be executed and errorIn will be passed to errorOut.
Outputs  
moduleIDout (LabVIEW only) A copy of moduleID
errorOut See Error Codes
C
int SD_AOU_AWGqueueConfig(int moduleID, int nAWG, int mode);
C++
int SD_AOU::AWGqueueConfig(int nAWG, int mode);
Visual Studio .NET, MATLAB
int SD_AOU::AWGqueueConfig(int nAWG, int mode);
Python
SD_AOU.AWGqueueConfig(nAWG, mode)
LabVIEW
AWGqueueConfig.vi

M3601A
Available: No

AWGqueueConfigRead

Reads the value of the cyclic mode of the queue. All waveforms must be already queued (AWG Waveform Queue System ) in one of the module's Arbitrary Waveform Generators.

Parameters
Name Description
Inputs  
moduleID (Non-object-oriented languages only)
Module identifier, returned by open
nAWG AWG channel number
errorIn (LabVIEW only) If it contains an error, the function will not be executed and errorIn will be passed to errorOut.
Outputs  
moduleIDout (LabVIEW only) A copy of moduleID
value Cyclic mode value: 0 (OFF: One shot), 1 (ON).
Negative numbers indicate an error, see Error Codes.
errorOut See Error Codes
C
int SD_AOU_AWGqueueConfigRead(int moduleID, int nAWG);
C++
int SD_AOU::AWGqueueConfigRead(int nAWG);
Visual Studio .NET, MATLAB
int SD_AOU::AWGqueueConfigRead(int nAWG);
Python
SD_AOU.AWGqueueConfigRead(nAWG)
LabVIEW
AWGqueueConfigRead.vi

M3601A
Available: No

AWGqueueMarkerConfig

Configures the marker generation for each AWG. All waveforms must be already queued (AWG Waveform Queue System ) in one of the module's Arbitrary Waveform Generators.

 

For this function to operate correctly, the markers must be configured before the waveforms start to play. Each AWG channel can be configured to output a marker on the PXI backplane or the front panel trigger.

Parameters
Name Description
Inputs  
moduleID (Non-object-oriented languages only)
Module identifier, returned by open
nAWG AWG channel number to be configured
markerMode Operation mode of the marker 0=Disabled, 1=On Start Event (when Start trigger is received) 2=On First Sample of Waveform (after WF startDelay), 3=On Every Cycle
trgPXImask Mask to select PXI triggers to use (bit0->PXItrg0, bit1->PXItrg1, ...)
trgIOmask Mask to select front-panel triggers to use (bit0->TriggerIO)
value 0=Low, 1=High (PXItrigger are active low signals, then 1 will generate a 0 pulse)
syncMode 0 is synchronized to CLKsys, 1 is synchronized to 10 MHz reference clock
length Pulse length of the marker = length x TCLKsys x 5 (length >1) (TCLKsys= 1/CLKsys)
delaly Delay to add before the marker pulse = delay x TCLKsys x 5
(markerMode selects the start point of the marker, after which the delay is added)
errorIn (LabVIEW only) If it contains an error, the function will not be executed and errorIn will be passed to errorOut.
Outputs  
moduleIDout (LabVIEW only) A copy of moduleID
errorOut See Error Codes
C
int SD_AOU_AWGqueueMarkerConfig(int moduleID, int nAWG, int markerMode, int trgPXImask, int trgIOmask, int value, int syncMode, int length, int delay);
C++
int SD_AOU::AWGqueueMarkerConfig(int nAWG, int markerMode, int trgPXImask, int trgIOmask, int value, int syncMode, int length, int delay);
Visual Studio .NET, MATLAB
int SD_AOU::AWGqueueMarkerConfig(int nAWG, int markerMode, int trgPXImask, int trgIOmask, int value, int syncMode, int length, int delay);
Python
SD_AOU.AWGqueueMarkerConfig(nAWG, markerMode, trgPXImask, trgIOmask, value, syncMode, length, delay)
LabVIEW
AWGqueueMarkerConfig.vi

M3601A
Available: No

AWGqueueSyncMode

Configures the synchronization mode of the queue.

 

All waveforms must be already queued (AWGqueueWaveform ) in one of the module's AWGs.

Parameters
Name Description
Inputs  
moduleID (Non-object-oriented languages only)
Module identifier, returned by open
nAWG AWG channel number
syncMode For 0 it is synchronized to CLKSYS, for 1 it is synchronized to the 10 MHz reference clock
errorIn (LabVIEW only) If it contains an error, the function will not be executed and errorIn will be passed to errorOut.
Outputs  
moduleIDout (LabVIEW only) A copy of moduleID
errorOut See Error Codes
C
int SD_AOU_AWGqueueSyncMode(int moduleID, int nAWG, int syncMode);
C++
int SD_AOU::AWGqueueSyncMode(int nAWG, int syncMode);
Visual Studio .NET, MATLAB
int SD_AOU::AWGqueueSyncMode(int nAWG, int syncMode);
Python
SD_AOU.AWGqueueSyncMode(nAWG, syncMode)
LabVIEW
AWGqueueSyncMode.vi

M3601A
Available: No

SD_Wave Functions (new and delete)

new

Creates a waveform object from data points contained in an array in memory
or in a file.

ADVANCED
Memory Usage: Waveforms created with new are stored in the PC RAM, not in the module's onboard RAM.
The limitation in the number of waveforms and their sizes is given by the amount of PC RAM.
Parameters
Name Description
Inputs  
waveformType

Waveform type, defines the type of waveform to create; this parameter is used to internally configure the AWG and selects the waveform type which matches the organizational structure of the waveform data file being loaded.

Option Description Name Value
Analog Analog normalized waveforms (-1 to 1) defined with doubles WAVE_ANALOG 0
Analog Dual Analog normalized waveforms (-1 to 1) defined with doubles, with two components (A and B) WAVE_ANALOG_DUAL 7
IQ* Analog normalized waveforms (-1 to 1) defined with doubles, with two components (I and Q) WAVE_IQ 2
IQ Polar* Analog waveforms (-1 to 1 module, -180 to +180 phase) defined with doubles, with two components (Magnitude and Phase) WAVE_IQPOLAR 3
Digital Digital waveforms defined with integers WAVE_DIGITAL 5
* When using IQ or IQ Polar, each component will only play at a maximum rate of 500 MSa/s.
See AWG Waveform Types.
waveformPoints Number of point of the waveform, which must be a multiple of a certain number of points. See AWG specifications in the Data Sheet.
waveformDataA Array with waveform points.
Analog waveforms are defined with floating point numbers,
which correspond to a normalized amplitude (-1 to 1).
waveformDataB Array with waveform points, only for dual/IQ waveforms.
waveformFile File containing the waveform points.
errorIn (LabVIEW only) If it contains an error, the function will not be executed and errorIn will be passed to errorOut.
Outputs  
waveformID (Non-object-oriented languages only) Waveform identifier.
Negative numbers indicate an error, see Error Codes.
errorOut See Error Codes
C
int SD_Wave_newFromArrayDouble(int waveformType, int waveformPoints, double* waveformDataA double* waveformDataB=0);
int SD_Wave_newFromFile(char* waveformFile);
C++
int SD_Wave SD AOU::SD AOU (int waveformType, int waveformPoints, double* waveformDataA, double* waveformDataB=0);
int SD_Wave SD AOU::SD AOU (char* waveformFile);
Visual Studio .NET, MATLAB
SD_Wave(int waveformType, double[] waveformDataA);
 
SD_Wave(int waveformType, double[] waveformDataA, double[] waveformDataB);
 
SD_Wave(string waveformFile);
Python
SD_Wave.newFromArrayDouble(waveformType, waveformDataA, waveformDataB=0)
 
SD_Wave.newFromFile(waveformFile)
LabVIEW
newFromArrayInteger.vi

 
newFromFile.vi

M3601A
Available: No

 

delete

Removes a waveform created with the new function.

ADVANCED
Onboard waveforms: Waveforms are removed
from the PC RAM only, not from the module onboard RAM.
Parameters
Name Description
Inputs  
waveformID Waveform identifier (returned by new )
errorIn (LabVIEW only) If it contains an error, the function will not be executed and errorIn will be passed to errorOut
Outputs  
errorOut See Error Codes
C
int SD_Wave_delete(int waveformID);
C++
delete <SD_Wave object pointer>;
int SD_AOU::delete();
Visual Studio .NET, MATLAB
Automatically destroyed by the .NET garbage collector.
Python
Managed by Python.
LabVIEW
delete.vi

M3601A
Available: No

SD_Module Functions (M3601A HVI-related)

The writeRegister and readRegister functions are related to the [3] Keysight M3601A Hard Virtual Instrument (HVI) Design Environment Software.

writeRegister

Writes a value in an HVI register of a hardware module (Option HV1 required).

Parameters
Name Description
Inputs  
moduleID (Non-object-oriented languages only)
Module identifier, returned by open
regNumber Register number
regName Register name
regValue Register value
unit Unit of the register value
errorIn (LabVIEW only) If it contains an error, the function will not be executed and errorIn will be passed to errorOut
Outputs  
moduleIDout (LabVIEW only) A copy of moduleID
errorOut See Error Codes
C
int SD_Module_writeRegister(int moduleID, int regNumber, int regValue);
 
int SD_Module_writeDoubleRegister(int moduleID, int regNumber, double regValue, const char* unit);
C++
int SD_Module::writeRegister(int regNumber, int regValue);
 
int SD_Module::writeRegister(const char* regName, int regValue);
 
int SD_Module::writeRegister(int regNumber, double regValue, const char* unit);
 
int SD_Module::writeRegister(const char* regName, double regValue, const char* unit);
Visual Studio .NET, MATLAB
int SD_Module::writeRegister(int regNumber, int regValue);
 
int SD_Module::writeRegister(string regName, int regValue);
 
int SD_Module::writeRegister(int regNumber, double regValue, string unit);
 
int SD_Module::writeRegister(string regName, double regValue, string unit);
Python
SD_Module.writeRegisterByNumber(regNumber, varValue)
 
SD_Module.writeRegisterByName(regName, varValue)
 
SD_Module.writeRegisterDoubleByNumber(regNumber, value, unit)
 
SD_Module.writeRegisterDoubleByName(regName, value, unit)
 
LabVIEW
writeRegisterWithIndex.vi

 

M3601A
Available: No
(The value can be accessed using math operations: for example, MathAssign.)

readRegister

Reads a value from an HVI register of a hardware module (Option HV1 required).

Parameters
Name Description
Inputs  
moduleID (Non-object-oriented languages only) Module identifier, returned by open
regNumber Register number
regName Register name
unit Unit of the register value
errorIn (LabVIEW only) If it contains an error, the function will not be executed and errorIn will be passed to errorOut
Outputs  
regValue Register value
moduleIDout (LabVIEW only) A copy of moduleID
errorOut See Error Codes
 
C
int SD_Module_readRegister(int moduleID, int regNumber, int regValue);
 
double SD_Module_readDoubleRegister(int moduleID, int regNumber, const char* unit, int& errorOut);
 
C++
int SD_Module::readRegister(int regNumber, int regValue);
 
int SD_Module::readRegister(const char* regName, int regValue);
 
double SD Module::readRegister(int regNumber, const char* unit, int& errorOut);
 
double SD_Module::readRegister(const char* regName, const char* unit, int& errorOut);
 
Visual Studio .NET, MATLAB
int SD_Module::readRegister(int regNumber, int regValue);
 
int SD_Module::readRegister(string regName, int regValue);
 
int SD_Module::readRegister(int regNumber, string unit, int errorOut);
 
int SD_Module::readRegister(string regName, string unit, int errorOut);
Python
SD_Module.readRegisterByNumber(regNumber)
 
SD_Module.readRegisterByName(regName)
 
SD_Module.readRegisterDoubleByNumber(regNumber, unit)
 
SD_Module.readRegisterDoubleByName(regName, unit)
 
LabVIEW
readRegisterWithIndex.vi

M3601A
Available: No
(The value can be accessed using math operations: for example, MathAssign.)

SD_Module Functions (M3602A FPGA-related)

The FPGAwritePCport, FPGAreadPCport, FPGAload, and FPGAreset functions are related to the [4] Keysight M3602A FPGA Design Environment Software.

 

FPGAwritePCport

Writes data at the PCport FPGA block (Option FP1 required).

Parameters
Name Description
Inputs  
moduleID (Non-object-oriented languages only) Module identifier, returned by open
nPCport PC port number
data Data buffer to write through PC port to FPGA
dataSize Number of 32-bit words to write (maximum is 128 words)
address Address that appears in the PCport interface
addressMode Selects between the two address modes shown below:
addressModeDescriptionNameValue
Auto
Increment
Initial address is incremented
after each access
ADDRESSING_AUTOINCREMENT0
FixedInitial address is used
for the whole access
ADDRESSING_FIXED1
accessMode Selects between the two memory access modes shown below:
accessModeDescriptionNameValue
Non-DMAMemory access is split into multiple accessesNONDMA0
DMAMemory access is done with a DMA transactionDMA1
errorIn (LabVIEW only) If it contains an error, the function will not be executed and errorIn will be passed to errorOut
Outputs  
moduleIDout (LabVIEW only) A copy of moduleID
errorOut See Error Codes
C
int SD_Module_FPGAwritePCport(int moduleID, int nPCport, int* data, int dataSize, int address, int addressMode, int accessMode);
 
C++
int SD_Module::FPGAwritePCport(int nPCport, int* data, int dataSize, int address, SD_AddressingMode addressMode, SD_AccessMode accessMode);
 
Visual Studio .NET, MATLAB
int SD_Module::FPGAwritePCport(int nPCport, int [] data, int address, SD_AddressingMode addressMode, SD_AccessMode accessMode);
Python
SD_Module.FPGAwritePCport(nPCport, data, address, addressMode, accessMode)
LabVIEW
writePCport.vi

M3601A
Available: No

FPGAreadPCport

Reads data at the PCport FPGA block (Option FP1 required).

Parameters
Name Description
Inputs  
moduleID (Non-object-oriented languages only)
Module identifier, returned by open
nPCport PCport number (as if appears in the M3602A software)
address Address that appears in the PCport interface
dataSize Number of 32-bit words to read (maximum is 128 words)
addressMode Selects between the two address modes shown below:
addressModeDescriptionNameValue
Auto
Increment
Initial address is incremented
after each access
ADDRESSING_AUTOINCREMENT0
FixedInitial address is used
for the whole access
ADDRESSING_FIXED1
accessMode Selects between the two memory access modes shown below:
accessModeDescriptionNameValue
Non-DMAMemory access is split into multiple accessesNONDMA0
DMAMemory access is done with a DMA transactionDMA1
errorIn (LabVIEW only) If it contains an error, the function will not be executed and errorIn will be passed to errorOut
Outputs  
data Rx data buffer
moduleIDout (LabVIEW only) A copy of moduleID
errorOut See Error Codes
C
int SD_Module_FPGAreadPCport(int moduleID, int nPCport, int* data, int dataSize, int address, int addressMode, int accessMode);
C++
int SD_Module::FPGAreadPCport(int nPCport, int* data, int dataSize, int address, SD_AddressingMode addressMode, SD_AccessMode accessMode);
Visual Studio .NET, MATLAB
int SD_Module::FPGAreadPCport(int nPCport, int address, int[] data, SD_AddressingMode addressMode, SD_AccessMode accessMode);
Python
SD_Module.FPGAreadPCport(nPCport, dataSize, address, addressMode, accessMode)
LabVIEW
readPCport.vi

M3601A
Available: No

 

FPGAload

Loads a bitstream file generated using [4] Keysight M3602A FPGA Design Environment Software to FPGA. (Option FP1 required).

Parameters
Name Description
Inputs  
moduleID (Non-object-oriented languages only) Module identifier, returned by open
fileName File to load
errorIn (LabVIEW only) If it contains an error, the function will not be executed and errorIn will be passed to errorOut
Outputs  
moduleIDout (LabVIEW only) A copy of moduleID
errorOut See Error Codes
C
int SD_Module_FPGAload(int moduleID, const char *fileName);
C++
int SD_Module::FPGAload(const char *fileName);
Visual Studio .NET, MATLAB
int SD_Module::FPGAload(string fileName);
Python
SD_Module.FPGAload(fileName)
LabVIEW
load.vi
M3601A
Available: No

 

FPGAreset

Sends a reset signal to FPGA (Option FP1 required).

Parameters
Name Description
Inputs  
moduleID (Non-object-oriented languages only) Module identifier, returned by open
mode Reset mode desired:

OptionDescriptionProgramming Definitions NameValue
Low Low active reset RESET_LOW 0
High High active reset RESET_HIGH 1
Pulse Pulse reset RESET_PULSE 2
errorIn (LabVIEW only) If it contains an error, the function will not be executed and errorIn will be passed to errorOut
Outputs  
moduleIDout (LabVIEW only) A copy of moduleID
errorOut See Error Codes
C
int SD_Module_FPGAreset(int moduleID, int mode);
C++
int SD_Module::FPGAreset(SD_ResetMode::SD_ResetMode mode);
Visual Studio .NET, MATLAB
int SD_Module::FPGAreset(SD_ResetMode mode);
Python
SD_Module.FPGAreset(mode)
LabVIEW
reset.vi
M3601A
Available: No